package com.xl.activiti.demo.controller;

import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;

/**
 * 模拟订单服务
 * @author zhongwm
 */
@Slf4j
@RestController
@RequestMapping("/order")
public class DemoOrderController {

    /**
     *
     * 获取用户订单列表
     * @param userId
     * @return
     */
    @GetMapping("/{userId}")
    public JSONObject getOrders(@PathVariable("userId") String userId) {
        JSONArray array = new JSONArray();
        for (int i = 1; i < 4; i++) {
            JSONObject json = new JSONObject();
            json.set("productId", i);
            json.set("productName", "产品" + i);
            array.add(json);
        }
        log.info("userId:{}, array:{}", userId, array);
        return new JSONObject().set("list", array);
    }

    /**
     * 获取订单是否能退货
     * @param productId
     * @return
     */
    @GetMapping("/refund/{productId}")
    public JSONObject enableRefund(@PathVariable("productId") String productId) {
        JSONObject json = new JSONObject();
        json.putOpt("status", RandomUtil.randomBoolean());
        log.info("productId:{}, json:{}", productId, json);
        return json;
    }

    /**
     * 生成退货单
     * @param json
     * @return
     */
    @PostMapping("/refund")
    public JSONObject refund(@RequestBody JSONObject json) {
        String productId = json.getStr("productId");
        if (StrUtil.isBlank(productId)) {
            json.set("status", false);
        } else {
            json.set("status", true);
        }
        log.info("refund. json:{}", json);
        return json;
    }
}
